Many electronic devices include embedded systems to control the operation of the underlying devices and to provide enhanced functionality and operational flexibility. Typically, non-volatile memory is included as a portion of the embedded system to store operating system program code, issued commands and critical data for operating the embedded system. Recently, embedded systems have begun to use solid state memory as non-volatile memory (e.g., electrically Erasable Read Only Memory (EEPROM)). Solid state memory may be used to accelerate applications to increase data access time, and may be advantageously programmed or re-programmed to provide non-volatile storage of information.
Conventionally, internal firmware may be used for issuing commands to non-volatile memory. This process typically requires that the firmware issue one command at a time to the non-volatile memory before a next command can be issued. Specifically, the firmware may send a status inquiry to a flash memory device to check on the status with respect to the command. If the command is still in the process of completion, the firmware waits to receive the result before a next command can be issued. In this conventional process, the firmware is on standby at all times. Because the firmware is on standby, the firmware cannot process other commands or requests until the processing of the previous command is complete. Additionally, the delay associated with the standby cycle to receive the status of a given command increases the latency of the associated device, the effect of which can become pronounced when numerous commands are in a queue.